/*
 * 声明了所有机组和设备的故障诊断接口，主要用于单元测试时 Mock
 */

#nullable enable

using System.Threading.Tasks;
using PHMEE.PHM.Algorithms.Diagnosis;

namespace PHMEE.Managers.Diagnosis;

public interface IMainLubricatingOilPumpFaultDiagnosisDomainService
{
    Task<string[]> FaultDiagnosisAsync(PointPosition pointPosition, float sampleRate, UnitWithEquipsDto unitWithEquips,
        float[] data);
}

public interface IAirCompressorFaultDiagnosisDomainService
{
    Task<string[]> FaultDiagnosisAsync(PointPosition pointPosition, float sampleRate, UnitWithEquipsDto unitWithEquips,
        float[] data);
}

public interface IOilFuelSeparatorFaultDiagnosisDomainService
{
    Task<string[]> FaultDiagnosisAsync(PointPosition pointPosition, float sampleRate, UnitWithEquipsDto unitWithEquips,
        float[] data);
}

public interface IAirBlower1FaultDiagnosisDomainService
{
    Task<string[]> FaultDiagnosisAsync(PointPosition pointPosition, float sampleRate, UnitWithEquipsDto unitWithEquips,
        float[] data);
}

public interface IAirBlower2FaultDiagnosisDomainService
{
    Task<string[]> FaultDiagnosisAsync(PointPosition pointPosition, float sampleRate, UnitWithEquipsDto unitWithEquips,
        float[] data);
}

public interface ITurbineFaultDiagnosisDomainService
{
    Task<string[]> FaultDiagnosisAsync(PointPosition pointPosition, float sampleRate, UnitWithEquipsDto unitWithEquips,
        Equipment equipment,
        float[] data);
}

public interface IDieselGeneratorFaultDiagnosisDomainService
{
    Task<string[]> FaultDiagnosisAsync(PointPosition pointPosition, float sampleRate, UnitWithEquipsDto unitWithEquips,
        float[] data);
}